เป้าหมาย 🎯
- งานที่ต้องทำ: ค้นหาเส้นทางที่ดีที่สุดจากเซิร์ฟเวอร์ต้นทาง `S` ไปยังเซิร์ฟเวอร์อื่นๆ ทุกตัว
- ผลลัพธ์ที่ต้องการ: สำหรับเซิร์ฟเวอร์ทุกตัว `i` คุณต้องคำนวณ:
- ความหน่วงรวม (Latency รวม): ค่าใช้จ่ายต่ำสุด (เส้นทางที่สั้นที่สุด) จาก `S` ไปยัง `i`
- _hop ถัดไป: เซิร์ฟเวอร์ตัวแรกในเส้นทางที่สั้นที่สุดนั้น
- ตัวอย่าง: หากเส้นทางที่ดีที่สุดจาก `S` ไปยัง `D` คือ `S -> A -> B -> D` แล้ว **hop ถัดไป** คือ `A`
โครงข่ายเครือข่าย 💾
เราจะใช้ รายการเชื่อมโยง (Adjacency List) เพื่อเก็บข้อมูลโครงข่ายเครือข่าย
- เซิร์ฟเวอร์คือ โหนด.
- การเชื่อมต่อคือ เส้นเชื่อมสองทิศทาง (bi-directional edges).
- ความหน่วงคือ น้ำหนักบวก.
// เชื่อมต่อ: 0-1 (10 มิลลิวินาที), 0-2 (3 มิลลิวินาที)
adj = [
0:[(1, 10), (2, 3)],
1:[(0, 10)],
2:[(0, 3)],
...
]
adj = [
0:[(1, 10), (2, 3)],
1:[(0, 10)],
2:[(0, 3)],
...
]
รูปแบบผลลัพธ์ ⚙️
คุณต้องพิมพ์ `V` บรรทัด แต่ละบรรทัด `i` สอดคล้องกับเซิร์ฟเวอร์ `i`
[ความหน่วง] [hop ถัดไป]สำหรับโหนดที่เข้าถึงได้
0 -1หากโหนดนั้นเป็นต้นทาง `S` เอง
-1 -1หากโหนดไม่สามารถเข้าถึงได้จาก `S`